# 在Python中定义函数，可以用必选参数、默认参数、可变参数、关键字参数和命名关键字参数，这5种参数都可以组合使用。
# 但参数定义的顺序必须是：必选参数、默认参数、可变参数、命名关键字参数和关键字参数。

# 自定义函数
def auto_add(x):
    # 类型检查
    if not isinstance(x, (int, float)):
        # 抛出异常
        raise TypeError('传入了错误的数据类型，必须为int或float')
    return x + 1


# 返回2个值，tuple格式
def two_response(x, y):
    return x + 1, y + 1


# y=1，表示默认参数，可不传，不传就取默认值
# 必填参数在前，默认参数在后
def flex_args(x, y=1):
    print(x + y)
    return x + y


# 可变参数，类似于java的(int... nums)，参数前加*号
def square_sum(*nums):
    # tuple类型
    print(nums)


# 关键字参数(传入dict，类似map)
def kw(name, **kw):
    print(f'name:{name}\t kw:{kw}')


def empty_function():
    # 暂时不做
    pass
